﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ForrajeriaDB; //ESTE USING VA EN TODOS LOS ELEMENTOS DE ESTA CAPA
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace ForrajeriaDAL
{
    public class ProvinciaDAL : AccesoDAL, InterfazDAL<ProvinciaMO>
    {
        private static string all = "Provincia_GetALL";
        
        private SqlCommand cmd;

        private static ProvinciaDAL instance;

        #region Constructores
        public ProvinciaDAL()
            : base()
        {

        }

        public static ProvinciaDAL Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new ProvinciaDAL();
                }
                return instance;
            }
        }


        #endregion

        #region Interfaz
        public List<ProvinciaMO> GetAll()
        {
            SqlDataReader reader = null;
            List<ProvinciaMO> lista = new List<ProvinciaMO>();

            try
            {
                cmd = new SqlCommand(all, getConexion());
                cmd.CommandType = CommandType.StoredProcedure;
                opencon();
                reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    ProvinciaMO aux = new ProvinciaMO();
                    aux.CodigoProvincia = int.Parse(reader["codigoProvincia"].ToString());
                    aux.Nombre = reader["Nombre"].ToString();
                    lista.Add(aux);
                }
                return lista;

            }
            catch (Exception ex)
            {
                closecon();
                throw ex;
            }
            finally
            {
                closeReader(reader);
                closecon();
            }
        }

        public void Adicionar(ProvinciaMO item)
        {
            throw new NotImplementedException();
        }

        public void Eliminar(ProvinciaMO item)
        {
            throw new NotImplementedException();
        }

        public void Actualizar(ProvinciaMO nuevoItem, ProvinciaMO origItem)
        {
            throw new NotImplementedException();
        }
        #endregion

        

    }
}
